package com.example.demo.service;

import com.example.demo.model.TeacherApproval;
import java.util.List;

/**
 * 教师权限申请审批服务接口
 */
public interface TeacherApprovalService {
    
    /**
     * 创建权限申请
     */
    TeacherApproval createApproval(Integer userId, String requestedRole, String approvalComment);
    
    /**
     * 审批权限申请
     */
    TeacherApproval approveRequest(Integer approvalId, Integer approverId, boolean isApproved, String comment);
    
    /**
     * 根据ID获取申请
     */
    TeacherApproval findById(Integer approvalId);
    
    /**
     * 根据用户ID获取申请列表
     */
    List<TeacherApproval> findByUserId(Integer userId);
    
    /**
     * 获取指定状态的申请列表
     */
    List<TeacherApproval> findByStatus(String status);
    
    /**
     * 获取所有申请
     */
    List<TeacherApproval> findAll();
    
    /**
     * 检查用户是否有足够权限审批申请
     */
    boolean canApprove(Integer approverId, String requestedRole);
    
    /**
     * 检查用户是否有未完成的相同权限申请
     */
    boolean hasPendingApproval(Integer userId, String requestedRole);
} 